home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / m17n / tai-sonla.mim < prev    next >
Text File  |  2009-04-29  |  5KB  |  240 lines

  1. ;; tai-sonla.mim -- Tai Viet input method with Phonetic sequence
  2. ;; Copyright (C) 2007
  3. ;;   Thua Thien Hue Center of Information Technology (HueCIT, Vietnam)
  4. ;; Copyright (C) 2007
  5. ;;   National Institute of Advanced Industrial Science and Technology (AIST)
  6. ;;   Registration Number H15PRO112
  7.  
  8. ;; This file is part of the m17n contrib; a sub-part of the m17n
  9. ;; library.
  10.  
  11. ;; The m17n library is free software; you can redistribute it and/or
  12. ;; modify it under the terms of the GNU Lesser General Public License
  13. ;; as published by the Free Software Foundation; either version 2.1 of
  14. ;; the License, or (at your option) any later version.
  15.  
  16. ;; The m17n library is distributed in the hope that it will be useful,
  17. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  19. ;; Lesser General Public License for more details.
  20.  
  21. ;; You should have received a copy of the GNU Lesser General Public
  22. ;; License along with the m17n library; if not, write to the Free
  23. ;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  24. ;; Boston, MA 02110-1301, USA.
  25.  
  26. (input-method tai sonla-kbd)
  27.  
  28. (title "Ω½₧")
  29.  
  30. (description (_"Tai Viet input method using the phonetic key sequence with the Tai Son La keyboard layout.
  31. The phonetic key sequence means that you type a syllable in this order:
  32.   C W? V v? F? T?
  33. where
  34.   C is an initial consonant,
  35.   W is a label for labializing C ('Ω¬½'),
  36.   V is a vowel (V1:prefix, V2:combining, or V3:postfix),
  37.   v is the second vowel of a digraph vowel
  38.         (in the case that V is 'Ω¬╣' and v is 'Ω¬╕', 'Ω¬╖', or 'Ω¬▒'),
  39.   F is a final consonant,
  40.   T is a tonemark (spacing or combining).
  41.  
  42. You can type special symbols by these keys:
  43.   '$' -> 'Ω½¢'
  44.   '#' -> 'Ω½£'
  45.   '%' -> 'Ω½¥'
  46.   '!' -> 'Ω½₧'
  47.   '@' -> 'Ω½ƒ'
  48. "))
  49.  
  50. (macro
  51.  (adjust-tone
  52.   (set TT @-1)
  53.   (delete @-)
  54.   (cond ((| (= T ?Ω½Ç) (= T ?Ω½é)) (delete @-) (move @>))
  55.     ((> T 0) (move M) (delete @+) (move @>)))
  56.   (set T TT)
  57.   (cond ((| (= T ?Ω½Ç) (= T ?Ω½é)) (insert T))
  58.     ((> T 0) (move M) (insert T) (move @>)))))
  59.  
  60. (map
  61.  (consonant
  62.   ("k" "Ω¬Ç")
  63.   ("K" "Ω¬ü")
  64.   ("x" "Ω¬é")
  65.   ("X" "Ω¬â")
  66.   ("q" "Ω¬ä")
  67.   ("Q" "Ω¬à")
  68.   ("|" "Ω¬å")
  69.   ("\"" "Ω¬ç")
  70.   ("g" "Ω¬ê")
  71.   ("G" "Ω¬ë")
  72.   ("c" "Ω¬è")
  73.   ("C" "Ω¬ï")
  74.   ("." "Ω¬î")
  75.   (">" "Ω¬ì")
  76.   ("s" "Ω¬Ä")
  77.   ("S" "Ω¬Å")
  78.   ("z" "Ω¬É")
  79.   ("Z" "Ω¬æ")
  80.   ("d" "Ω¬Æ")
  81.   ("D" "Ω¬ô")
  82.   ("t" "Ω¬ö")
  83.   ("T" "Ω¬ò")
  84.   ("w" "Ω¬û")
  85.   ("W" "Ω¬ù")
  86.   ("n" "Ω¬ÿ")
  87.   ("N" "Ω¬Ö")
  88.   ("b" "Ω¬Ü")
  89.   ("B" "Ω¬¢")
  90.   ("p" "Ω¬£")
  91.   ("P" "Ω¬¥")
  92.   ("/" "Ω¬₧")
  93.   ("?" "Ω¬ƒ")
  94.   ("f" "Ω¬á")
  95.   ("F" "Ω¬í")
  96.   ("m" "Ω¬ó")
  97.   ("M" "Ω¬ú")
  98.   ("j" "Ω¬ñ")
  99.   ("J" "Ω¬Ñ")
  100.   ("r" "Ω¬ª")
  101.   ("R" "Ω¬º")
  102.   ("l" "Ω¬¿")
  103.   ("L" "Ω¬⌐")
  104.   ("v" "Ω¬¬")
  105.   ("V" "Ω¬½")
  106.   ("h" "Ω¬¼")
  107.   ("H" "Ω¬¡")
  108.   ("o" "Ω¬«")
  109.   ("O" "Ω¬»"))
  110.  
  111.  (final-c
  112.   ("b" "Ω¬Ü")
  113.   ("d" "Ω¬Æ")
  114.   ("k" "Ω¬Ç")
  115.   ("J" "Ω¬Ñ")
  116.   ("M" "Ω¬ú")
  117.   ("N" "Ω¬Ö")
  118.   ("G" "Ω¬ë")
  119.   ("V" "Ω¬½"))  
  120.  
  121.  (high-v
  122.   ("V" "Ω¬½"))  
  123.  
  124.  (special
  125.   ("$" "Ω½¢")
  126.   ("#" "Ω½£")
  127.   ("%" "Ω½¥")
  128.   ("!" "Ω½₧")
  129.   ("@" "Ω½ƒ"))
  130.  
  131.  (vowel-pre
  132.   ("e" "Ω¬╡")
  133.   ("," "Ω¬╢")
  134.   ("E" "Ω¬╣")
  135.   ("Y" "Ω¬╗")
  136.   ("y" "Ω¬╝")
  137.   ("o^" "Ω¬╢"))
  138.  
  139.  (vowel-combining
  140.   ("}" "Ω¬░")
  141.   ("i" "Ω¬▓")
  142.   ("U" "Ω¬│")
  143.   ("u" "Ω¬┤")
  144.   ("[" "Ω¬╖")
  145.   ("I" "Ω¬╕")
  146.   ("{" "Ω¬╛")
  147.   ("awm" "Ω¬╛"))
  148.  
  149.  (vowel-post
  150.   ("a" "Ω¬▒")
  151.   ;; ("A" "Ω¬▒Ω¬▓")
  152.   ("<" "Ω¬║")
  153.   ("]" "Ω¬╜")
  154.   ;; Note: "Ω¬«" and "Ω¬»" can be consonant and vowel. 
  155.   ("o" "Ω¬«")
  156.   ("O" "Ω¬»"))
  157.  
  158.  (vowel-digraph
  159.   ("r" "Ω¬╕")
  160.   ("R" "Ω¬╖")
  161.   ("A" "Ω¬▒"))
  162.  
  163.  (tone
  164.   (":" "Ω½Ç")
  165.   (";" "Ω½é")
  166.   ("\"" "Ω¬┐")
  167.   ("'" "Ω½ü"))
  168.  
  169.  (punctuation
  170.   ("!!" "!")
  171.   ("@@" "@")
  172.   ("##" "#")
  173.   ("$$" "$")
  174.   ("%%" "%")
  175.   (",," ",")
  176.   (".." ".")
  177.   (";;" ";")
  178.   ("::" ":")
  179.   (";;" ";")
  180.   ("\"\"" "\"")
  181.   ("//" "/")
  182.   ("||" "|")
  183.   ("''" "'")
  184.   ("!!" "?")
  185.   ("??" "?")
  186.   ("[[" "[")
  187.   ("]]" "]")
  188.   ("{{" "{")
  189.   ("}}" "}")
  190.   ("<<" "<")
  191.   (">>" ">"))
  192.  
  193.  (backspace
  194.   ((BackSpace) (sub K 1) (undo K))))
  195.  
  196. (state
  197.  (init
  198.   (t (set K 0))
  199.   (consonant (mark M) (shift after-c))
  200.   (special)
  201.   (punctuation)
  202.   (vowel-pre)
  203.   (vowel-post)
  204.   (vowel-combining)
  205.   (tone))
  206.  
  207.  (after-c
  208.   (t (mark M) (set V2 0) (set K @@))
  209.   (high-v (mark M))
  210.   (vowel-pre (set V1 @-1)
  211.          (delete @-)
  212.          (move @<) (insert V1) (move @>) (shift after-c-vpre))
  213.   (vowel-combining (cond ((> V2 0) (move @-) (delete @-) (move @>))
  214.              (1 (set K @@)))
  215.            (set V2 @-1) (mark M))
  216.   (vowel-post (shift after-c-v))
  217.   (vowel-digraph (mark M) (move @<) (insert "Ω¬╣") (move @>)
  218.          (shift after-c-v))
  219.   (final-c (delete @-) (pushback 1) (shift init))
  220.   (backspace)
  221.   (nil (shift after-c-v)))
  222.   
  223.  (after-c-vpre
  224.   (t (set K @@))
  225.   (vowel-combining (set V2 @-1) (mark M) (shift after-c-v))
  226.   (vowel-post (shift after-c-v))
  227.   (backspace)
  228.   (nil (shift after-c-v)))
  229.  
  230.  (after-c-v
  231.   (t (set T 0) (set K @@))
  232.   (tone (cond ((= T 0) (set K @@))) (adjust-tone))
  233.   (final-c (shift after-c-v-f))
  234.   (backspace))
  235.  
  236.  (after-c-v-f
  237.   (t (set K @@))
  238.   (tone (adjust-tone))
  239.   (backspace)))
  240.